package com.ruoyi.factory.manpower.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;

/**
 * 加解密工具类
 *
 * @author WEIXING
 * @date 2020/11/25 19:50
 */
public class OpenEncryptUtil {

    //region 3DES加解密

    /**
     * 对参数进行3DES加密处理
     *
     * @param data   要加密的数据
     * @param desKey 密钥
     * @return
     */
    public static String desEncrypt(String data, byte[] desKey) throws Exception {
        if (data == null) {
            return null;
        }
        //加密
        String cipherString = null;
        byte[] text = data.getBytes("UTF-8");
        //进行加密操作
        byte[] cipherBytes = SecureUtil.desede(desKey).encrypt(text);
        //对密文进行BASE64编码
        cipherString = Base64.encode(cipherBytes);
        return cipherString;
    }

    /**
     * 对参数进行3DES解密
     *
     * @param data   要解密的数据
     * @param desKey 密钥
     * @return
     */
    public static String desDecrypt(String data, byte[] desKey) throws Exception {
        if (data == null) {
            return null;
        }
        String cipherString = null;
        //对数据和密钥进行BASE64解码
        byte[] text = Base64.decode(data);
        //进行解密操作
        byte[] cipherBytes = SecureUtil.desede(desKey).decrypt(text);
        cipherString = new String(cipherBytes, "UTF-8");
        return cipherString;
    }

    //endregion

}

